home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn User: China
/
Acorn User China CD-ROM (UK) (Disc A)
/
Acorn User China CD-ROM (UK) (Disc A).bin
/
DEMON
/
HAMRADIO
/
TNC.ARC
/
!tnc_!RunImage
(
.txt
)
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
RISC OS BBC BASIC V Source
|
1994-08-20
|
68.3 KB
|
3,533 lines
><tnc>!RunImage
Another amazing program by Garry Orford, G4FRO
Copyright Garry Orford, G4FRO 1989-1994
Real men use WIMPs without line numbers !
/version$="2.20" +
(223)+" (20 August 1994)"
version$="2.12 (28 March 1993)"
error:
numlines%=1000
indsize%=5408+3*1096
baud$(8)
block% 2000
block2% 20
call$(24)
ctexts$(24)
cwspeed$(10)
databuff% 1024
fkey$(4,11)
fkey$=""
host% 4000
iconaction% 28
iconcolour% 35
iconsp% 12
icontext$(12)
ind% indsize%
length% 12
line$(numlines%)
line$=("")
list% 28
mb1% &200
mb2% &100
mb3% &100
mb4% &100
mb5% &100
mb6% &100
mb7% &100
name% 8
pac% 80
q% &500
r% &500
shift$(4)
speed$(9)
"OS_FSControl",28,"<tnc$DIR>.WimpKeys.*"
,,,numwkeys%
wimpkeydef$(numwkeys%,9)
wimpkeyicon$(numwkeys%,9)
word$(6)
workarea% 256
yappdata% 256
yappname% 24
amtor%=
amtorshift%=1
append%=
baud$(3)="300"
baud$(4)="1200"
baud$(5)="2400"
baud$(6)="4800"
baud$(7)="9600"
baud$(8)="19200"
bauddef$="2400"
baud%=5
botline%=3
btext$=""
callsign$=""
caret%=
caretpos%=0
char%=0
F ci%=0
G cc%=0
charout%=0
chat%=
clock%=
close%=
code%=0
ctextstick%=0
ctrlz%=
O cw%=
cwspeed%=5
cwspeed$(1)="5"
cwspeed$(2)="10"
cwspeed$(3)="15"
cwspeed$(4)="20"
cwspeed$(5)="25"
cwspeed$(6)="30"
cwspeed$(7)="35"
cwspeed$(8)="40"
cwspeed$(9)="45"
cwspeed$(0)="50"
data%=
datapointer%=0
dateformat$=""
deffile$=""
defgrab$=""
"OS_ReadMonotonicTime"
delay%
errwindow%=
filter%=
first%=
fkeys%=
grab%=
grabfile$=""
headerlen%=0
icontxt$=""
indend%=ind%+indsize%
kamcc%=0
kamci%=0
length%=0
line%=0
longpath%=
o'mask%=(1<<4)+(1<<5)+(1<<11)+(1<<12)
maxpac%=72
memack%=
menu%=1
modes%=
name$=""
newcaretpos%=0
pac$=""
packet%=
pactor%=
partpac%=0
quit%=
reason$=""
rtty%=
rxbotline%=5
rxline%=5
scrolly%=0
scrolled%=
sentcr%=delay%
shaded%=1<<22
shift$(1)="170"
shift$(2)="425"
shift$(3)="850"
shift$(4)="M"
shift%=1
sline%=0
speed$(1)="45"
speed$(2)="50"
speed$(3)="57"
speed$(4)="75"
speed$(5)="100"
speed$(6)="110"
speed$(7)="150"
speed$(8)="200"
speed$(9)="300"
speed%=1
spool%=
spoolfile$=""
spooltick%=0
state$="R"
testctext%=delay%
timeformat$=""
type$=""
upload%=
wkeyset%=1
word$(0)="7E2"
word$(1)="7O2"
word$(2)="7E1"
word$(3)="7O1"
word$(4)="8N1"
word$(5)="8E1"
word$(6)="8O1"
worddef$="8N1"
word%=4
xsave%=0
yapp%=
yappfile$=""
yapppathfile$=""
yappspy%=0
yappup%=
yc%=0
ysave%=0
*FX4,2
"OS_SerialOp",0,0,&FFFFFFF0
$block%="TASK"
"Wimp_Initialise",200,!block%,"tnc"
,task%
"Wimp_OpenTemplate",,"<tnc$DIR>.Templates"
indtemp%=ind%
infohdl%=
template("info")
clockhdl%=
template("clock")
whdl%=
template("window")
setuphdl%=
template("setup")
$uploadhdl%=
template("progress")
fkeyshdl%=
template("fkeys")
!sfkeyshdl%=
template("fkeys")
!cfkeyshdl%=
template("fkeys")
"scfkeyshdl%=
template("fkeys")
savehdl%=
template("save")
$ramhdl%=
template("ramprogress")
yapphdl%=
template("yapp")
"yappuphdl%=
template("yappup")
amtorhdl%=
template("amtor")
rttyhdl%=
template("rtty")
cwhdl%=
template("morse")
#wkeyshdl%=
template("wimpkeys")
grabhdl%=
template("grab")
"streamhdl%=
template("stream")
"ctextshdl%=
template("ctexts")
"pactorhdl%=
template("pactor")
errhdl%=
template("error")
$filerrhdl%=
template("filerror")
"Wimp_CloseTemplate"
block%!0=infohdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
redraw
iconbar%=
iconbar
seticontext(15,infohdl%,version$)
getwkeys
ctexts
loadkeyfile("fkeys")
loadkeyfile("sfkeys")
loadkeyfile("cfkeys")
loadkeyfile("scfkeys")
setup
setcursor
wimperror
close%=
close:
*POINTER
block%!0=infohdl%
"Wimp_CloseWindow",,block%
&400E1,mask%,block%,delay%
reason%,block%:
6,2,2
reason%
yapp%=
yappup%=
yappup
yapp%=
yappup%=
(-2)>0
clock%=
checkclock
upload%=
checktnc
memack%=
memsend
wrap%=
yapp%=
packet%=
diddle
caret%=
updatecaret
redraw
"Wimp_OpenWindow",,block%
closewindow(block%!0)
mouse_click(block%)
dragsave
keypress
menu_action(block%)
scrollreq
17,18:
receive(block%)
quit%=
close
template(name$)
"Wimp_LoadTemplate",,block%,indtemp%,indend%,-1,name$,0
,,indtemp%
"Wimp_CreateWindow",,block%
hdl%
=hdl%
setup
"OS_File",5,"<tnc$Dir>.defaults"
type%
type%
0,2:
standard
loadsetup
6,2,2
standard
"OS_SerialOp",5,5
"OS_SerialOp",6,5
"OS_SerialOp",1,0
beeps%=
kam%=
wrap%=
caret%=
deffile$="$.Packet"
defgrab$="$.Grab"
%dateformat$="%we %zdy %mo %ce%yr"
timeformat$="%24:%mi:%se"
loadsetup
$channel%=
("<tnc$DIR>.defaults")
baud%=
#(channel%)
bauddef$=baud$(baud%)
word%=
#(channel%)
worddef$=word$(word%)
beeps%=
#(channel%)
kam%=
#(channel%)
wrap%=
#(channel%)
caret%=
#(channel%)
ctextstick%=
#(channel%)
deffile$=
#(channel%)
defgrab$=
#(channel%)
dateformat$=
#(channel%)
timeformat$=
#(channel%)
deffile$=""
deffile$="$.Packet"
defgrab$=""
defgrab$="$.Grab"
#(channel%)
"OS_SerialOp",5,baud%:
3 to 8 inc is 300,1200,2400,4800,9600,19200
"OS_SerialOp",6,baud%
codeword
seticontext(10,setuphdl%,baud$(baud%))
seticontext(1,setuphdl%,word$(word%))
seticontext(13,setuphdl%,deffile$)
seticontext(31,setuphdl%,defgrab$)
seticontext(0,savehdl%,deffile$)
seticontext(25,setuphdl%,dateformat$)
seticontext(26,setuphdl%,timeformat$)
seticontext(0,grabhdl%,defgrab$)
beeps%=
select(beeps%,16)
kam%=
select(kam%,17)
wrap%=
select(wrap%,19)
caret%=
select(caret%,28)
usenewdefaults
"OS_SerialOp",0,0,&FFFFFFF0
geticontext(13,setuphdl%,deffile$)
deffile$=""
deffile$="$.Packet"
geticontext(31,setuphdl%,defgrab$)
defgrab$=""
defgrab$="$.Grab"
geticontext(25,setuphdl%,dateformat$)
geticontext(26,setuphdl%,timeformat$)
icondefaults
"OS_SerialOp",5,baud%
"OS_SerialOp",6,baud%
codeword
"OS_SerialOp",1,code%
select(icondef%,select%)
icondef%=
clearicon(setuphdl%,select%)
seticon(setuphdl%,select%)
icondef%=
=icondef%
baudchange(step%)
baud%=baud%+step%
baud%=9
baud%=3
baud%=2
baud%=8
seticontext(10,setuphdl%,baud$(baud%))
wordchange(step%)
word%=word%+step%
word%=-1
word%=6
word%=7
word%=0
seticontext(1,setuphdl%,word$(word%))
codeword
word%
0:code%=%011101
1:code%=%001101
2:code%=%011001
3:code%=%001001
4:code%=%0
5:code%=%011000
6:code%=%001000
"OS_SerialOp",1,code%
protoabort
seticontext(10,setuphdl%,bauddef$)
seticontext(1,setuphdl%,worddef$)
spoolfile$=""
spoolfile$=deffile$
seticontext(13,setuphdl%,spoolfile$)
grabfile$=""
grabfile$=defgrab$
seticontext(31,setuphdl%,grabfile$)
seticontext(25,setuphdl%,dateformat$)
seticontext(26,setuphdl%,timeformat$)
seticontext(36,setuphdl%,yappon$)
seticontext(37,setuphdl%,yappoff$)
usenewdefaults
icondefaults
checkicon(16,setuphdl%)
check%=
beeps%=
beeps%=
checkicon(17,setuphdl%)
check%=
kam%=
kam%=
checkicon(19,setuphdl%)
check%=
wrap%=
wrap%=
checkicon(28,setuphdl%)
check%=
caret%=
caret%=
savesetup
usenewdefaults
"OS_File",6,("<tnc$DIR>.defaults")
$channel%=
("<tnc$DIR>.defaults")
#channel%,baud%
#channel%,word%
#channel%,beeps%
#channel%,kam%
#channel%,wrap%
#channel%,caret%
#channel%,ctextstick%
#channel%,deffile$;
#channel%,defgrab$;
#channel%,dateformat$;
#channel%,timeformat$;
#channel%
setcursor
"ColourTrans_ReturnColourNumber",&0000FF00
caretcol%
"Wimp_ReadPalette",,block%
backcol%=block%?4
caretcol%=block%?44
)flagtweak%=(backcol%
caretcol%)<<16
setbits%=caretcol%<<26
$flagtweak%=flagtweak%
setbits%
yapp%=
6,202,0,255
,key%,space%
space%=0
(key%
(key%
72)=72
&57,4
beeps%=
13:pac%?cc%=13
spool%=
seticontext(5,savehdl%,
#spy%))
$block%!0=whdl%:
&400CB,,block%
ci%>31
ci%<127
pac%?cc%=ci%:cc%+=1
filter%=
spool%=
#spy%,ci%
filter%=
spool%=
#spy%,ci%
cc%=80
ci%=13
(-2)<1
ci%<>13
:pac%?cc%=13:
cc%=80
ci%=13
pac$=$pac%:
scrollrx
scrollrx
first%=
#block%!0=whdl%:
&400CB,,block%
6r1%=block%!20+4:r2%=block%!24-(block%!16-block%!8)
4r3%=block%!20+(block%!12-block%!4):r4%=block%!24
&400EB,whdl%,r1%,-32000,r3%,r4%,r1%,-31968
sline%+=1:first%=
ci%=13
sline%>numlines%-1
:sline%=1:scrolled%=
sline%>0
:line$(sline%)=pac$:
:line$(numlines%)=pac$:
pac$,"***")>0
connected
clear%=0
cc%+1:pac%?clear%=0:
cc%=0:first%=
spool%=
#spy%,10
line$(sline%)=pac$
/block%!0=whdl%:block%!4=r1%:block%!8=-31996
'block%!12=r3%:block%!16=block%!8+32
&400C9,,block%
more%
more%
block%!4-block%!20+4,block%!8-r2%-31968
line$(sline%):
&400CA,,block%
more%
redraw
&400C8,,block%
more%
more%
,tl%=1-(block%!24-block%!16+block%!40)
,bl%=1-(block%!24-block%!16+block%!32)
bl%>numlines%
bl%=numlines%:
tl%<numlines%+1
Kx%=block%!4-block%!20+4:y%=block%!40-(block%!24-block%!16+block%!40)
pl%=tl%
x%,y%:y%-=32:
line$((pl%+sline%)
numlines%):
&400CA,,block%
more%:
closewindow(hdl%)
(yapp%=
yappup%=
(hdl%=yapphdl%
hdl%=yappuphdl%)
seticontext(1,yapphdl%,"Abort to close tidily")
seticontext(1,yappuphdl%,"Abort to close tidily")
hdl%=savehdl%
hdl%=setuphdl%
"Wimp_CreateMenu",,-1
block%!0=hdl%
"Wimp_CloseWindow",,block%
hdl%
clockhdl%:clock%=
uploadhdl%:upload%=
ramhdl%:memack%=
&
fkeyshdl%,wkeyshdl%:fkeys%=
errwindow%:close%=
yapphdl%:
+
seticontext(0,yapphdl%,"Packet")
&
seticontext(5,yapphdl%,"0")
&
seticontext(3,yapphdl%,"0")
&
seticontext(4,yapphdl%,"0")
3
seticontext(1,yapphdl%,"Awaiting start")
*
seticontext(6,yapphdl%,"Abort")
1
state$="R"
out("{break}"):
direct
state$="RH2"
yappfile$<>""
.
"OS_File",18,yapppathfile$,
(type$)
out("[06][02]")
state$="RD"
)
updateicon(yapphdl%,2,&1700013B)
1
seticontext(1,yapphdl%,"Receiving file")
(-2)<2
state$
"R":
&57,4
,ci%
ci%
&57,4
,ci%
ci%=1
ci%=1
out("[06][01]")
state$="RH"
*=
seticontext(1,yapphdl%,"Awaiting file header")
,*
yappabort("Abort received")
.
/
"RH":
&57,4
,ci%
ci%
4"
&57,4
,headerlen%
getyappname
6" yappname$=$(yappname%)
7$ headerlen%-=
(yappname$)
88
(yappname$)>10
yappname$=
yappname$,10)
9.
seticontext(0,yapphdl%,yappname$)
getyappname
;' yapplength%=
($(yappname%))
<' headerlen%-=
($(yappname%))
=1
seticontext(5,yapphdl%,$(yappname%))
>(
seticontext(3,yapphdl%,"0")
?>
seticontext(1,yapphdl%,"Drag file to DIR viewer")
@-
updateicon(yapphdl%,2,&1700A13B)
A.
geticontext(36,setuphdl%,yappon$)
headerlen%>0
getyappname
D8
(yappname$)>3
yappname$=
yappname$,3)
E?
"XWimp_SpriteOp",&118,,"file_"+yappname$
FC
r0%=&118
name$="sfile_"+type$
name$="sfile_xxx"
G)
swapicon(yapphdl%,2,name$)
&57,4
,ci%
ci%=1
out("[06][04]")
state$="R"
yappfile$=""
O1
seticontext(1,yapphdl%,"Finished")
P-
seticontext(6,yapphdl%,"Quit")
Q&
out("{break}"):
direct
tncslow
S$
out("k[13]"):
direct
yapp%=
V*
yappabort("Abort received")
X!
&57,4
,ignore%
Y
Z&
yappabort("Abort received")
[
\
"RD":
data%=
yappdata
`
&57,4
,ci%
ci%
d%
&57,4
,datalength%
e/
datalength%=0
datalength%=256
yc%=0
yappdata
&57,4
ci%=4
k
out("[06][03]")
state$="RH"
m6
seticontext(3,yapphdl%,
#yappspy%))
nH
seticontext(4,yapphdl%,
#yappspy%*100
yapplength%))
oA
seticontext(1,yapphdl%,"File received, closing")
#yappspy%
r,
yappabort("Abort received")
u(
yappabort("Abort received")
w
"CW":
&57,4
,ci%
ci%<>24
{&
yappabort("Abort received")
|
&57,4
,ci%
ci%
5:state$="R"
out("[06][05]")
state$="CW"
&57,4
,ci%
ci%<>24
$
yappabort("Abort received")
out("[06][05]")
<
seticontext(1,yapphdl%,"Cancel received, finished")
#yappspy%
state$="R"
getyappname
yc%=0
&57,4
,ci%
ci%=46
ci%=47
yappname%?yc%=ci%
yc%+=1
ci%=0
=1000
yappname%?(yc%-1)=13
yappdata
&57,4
,ci%
#yappspy%,ci%
yc%+=1
yc%=datalength%
(-2)=0
seticontext(3,yapphdl%,
#yappspy%))
seticontext(4,yapphdl%,
#yappspy%*100
yapplength%))
yc%<datalength%
data%=
data%=
yappabort(reason$)
yapp%=
seticontext(1,yapphdl%,reason$)
seticontext(6,yapphdl%,"Quit")
yapp%=
"XOS_Find",0,yappspy%
yappup%=
seticontext(1,yappuphdl%,reason$)
seticontext(6,yappuphdl%,"Quit")
yappup%=
"XOS_Find",0,ydata%
state$="Abort"
out("[24]Abort[13]")
out("{break}"):
direct
tncslow
out("k[13]"):
direct
yappup
state$
"S":
"S2":
(-2)<1
%
delay%>=duration%+12000
!
yappabort("Timeout")
yappupsendab
delay%+=500
&57,4
,ci%
ci%
&57,4
,ci%
ci%
state$="SH"
?
seticontext(1,yappuphdl%,"Sending filename")
state$="SD"
;
seticontext(1,yappuphdl%,"Sending file")
yappupsendab
%
no action required
(
yappabort("Abort received")
"SH":
-
geticontext(0,yappuphdl%,yappfile2$)
yappfile2$=
yappfile2$)
out("[01]")
7 sendlen%=2+
(yappfile2$)+
(length%))+
(type$)
#
"OS_SerialOp",3,sendlen%
out(yappfile2$)
out("[00]")
(length%))
out("[00]")
out(type$)
state$="SH2"
*
"OS_ReadMonotonicTime"
delay%
duration%=delay%
"SH2":
(-2)<1
%
delay%>=duration%+12000
!
yappabort("Timeout")
delay%+=500
&57,4
,ci%
ci%
(-2)<1
&57,4
,ci%
ci%=2
state$="SD"
9
seticontext(1,yappuphdl%,"Sending data")
yappupsendab
state$="S"
<
seticontext(1,yappuphdl%,"Restart requested")
yappabort
"SD":
0
(-2)>0
yappabort("Abort received")
outyapp
"SE":
(-2)<2
%
delay%>=duration%+12000
!
yappabort("Timeout")
delay%+=500
&57,4
,ci%
&57,4
,cj%
ci%=6
cj%=3
state$="ST"
5
seticontext(1,yappuphdl%,"File sent OK")
(
yappabort("Abort received")
"ST":
"OS_SerialOp",3,4
"OS_SerialOp",3,1
-
seticontext(1,yappuphdl%,"Finished")
)
seticontext(6,yappuphdl%,"Quit")
out("{break}"):
direct
out("k[13]")
yappup%=
outyapp
(-3)>127
& numbytes%=length%-
#ydata%
numbytes%>127
numbytes%=127
"OS_SerialOp",3,2
"OS_SerialOp",3,numbytes%
numbytes%-=1
byte%=
#(ydata%)
-
"OS_SerialOp",3,byte%
numbytes%=0
#ydata%
block%!0=yapphdl%
"Wimp_GetWindowState",,block%
seticontext(3,yappuphdl%,
#ydata%))
seticontext(4,yappuphdl%,
#ydata%*100
length%))
#ydata%
#(ydata%)
state$="SE"
6*
"OS_ReadMonotonicTime"
delay%
duration%=delay%
"OS_SerialOp",3,3
"OS_SerialOp",3,1
yappupsendab
state$
"S":
A&
out("[03]trans[13]"):
direct
C2
seticontext(1,yappuphdl%,"Starting YAPP")
D*
seticontext(6,yappuphdl%,"Abort")
state$="S2"
F*
"OS_ReadMonotonicTime"
delay%
duration%=delay%
"S2":
out("[05][01]")
yappabort("Abort received")
iconbar
window handle=-1:box (0,0) to (68,68)
flags:icon is sprite, indirected, button type 2
Q:!q%=-1:q%!4=0:q%!8=0:q%!12=68:q%!16=68:q%!20=&17002122
$iconsp%="!tnc"
SEq%!24=iconsp%:q%!28=1:q%!32=
($iconsp%):
System area for sprites
"Wimp_CreateIcon",,q%
X'!q%=-2:q%!4=iconbar%:q%!8=0:q%!12=0
"Wimp_SetIconState",,q%
receive(block%)
sendhdl%=block%!4
reason%=block%!16
"Wimp_GetPointerInfo",,block2%
hdl%=block2%!12
reason%
quit%=
memack(block%)
yapp%=
yappfile$=""
next%=0
i! name%=block%?(44+next%)
yappfile$+=
(name%)
next%+=1
m# name%=block%?(44+next%)
name%=0
o0
yappfile$<>""
yappfile$,".")<>0
p&
"OS_File",6,(yappfile$)
q! yappspy%=
(yappfile$)
r# yapppathfile$=yappfile$
s(
seticontext(3,yapphdl%,"0")
state$="RH2"
v6
sayerror("Invalid file name - try again")
y
grab%=
spool%=
|)
sayerror("Already spooling")
spoolfile$=""
next%=0
# name%=block%?(44+next%)
" spoolfile$+=
(name%)
next%+=1
% name%=block%?(44+next%)
name%=0
4
spoolfile$<>""
spoolfile$,".")<>0
"
spoolok(spoolfile$)
1
seticontext(0,savehdl%,spoolfile$)
=
sayerror("Drag file name to directory viewer")
closewindow(savehdl%)
grabfile$=""
next%=0
! name%=block%?(44+next%)
grabfile$+=
(name%)
next%+=1
# name%=block%?(44+next%)
name%=0
grabtext
hdl%
#
whdl%:
dataload(block%)
memload(block%)
&400C1:
setcursor
memack(block%)
block%!12=block%!8
block%!16=6
block%!20=databuff%
block%!24=1024
"Wimp_SendMessage",18,block%,block%!4
memload(block%)
numbytes%=block%!24
numbytes%<1024
datapointer%=databuff%
block%!0=ramhdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
seticontext(1,ramhdl%,
(numbytes%))
&10000,"Large file - save to disc first, then upload."
memsend
upload%=
"OS_Byte",128,253
,space%
space%>128
byte%=?datapointer%
byte%=10
byte%=13
(byte%))
datapointer%+=1
datapointer%=databuff%+numbytes%
byte%=13
datapointer%=databuff%+numbytes%
ctrlz%=
out(fkey$(1,11))
closewindow(ramhdl%)
upload%=
dataload(block%)
block%!12=block%!8
block%!16=4
hdl%=block%!20
"Wimp_SendMessage",17,block%,block%!4
hdl%=whdl%
type%=block%!40
type$=
~(block%!40)
type%
4
&1000:
badfile("Can't upload a directory")
8
&2000:
badfile("Can't upload an !Application")
5
"XWimp_SpriteOp",&118,,"file_"+type$
=
r0%=&118
name$="sfile_"+type$
name$="sfile_xxx"
prepareupload(type%)
grabtext
grabfile$=""
grabfile$=defgrab$
grabfile$<>""
grabfile$,".")<>0
"OS_File",6,grabfile$
grabchannel%=
(grabfile$)
"OS_File",18,grabfile$,&fff
seticontext(0,grabhdl%,grabfile$)
scrolled%=
nextgrab
+
savelines%=sline%+1
numlines%-1
*
#grabchannel%,line$(savelines%)
savelines%
nextgrab
#grabchannel%
sayerror("Drag file name to directory viewer")
grab%=
closewindow(grabhdl%)
"Wimp_SetCaretPosition",whdl%,line%,xsave%,ysave%,-1,-1
nextgrab
savelines%=1
sline%
#grabchannel%,line$(savelines%)
savelines%
badfile(message$)
!block%=
$(block%+4)=message$
"Wimp_ReportError",block%,%10001,"Upload error"
,response%
prepareupload(type%)
"OS_Byte",129,&FF,&FF
,pressed%
pressed%=&FF
checkupload
fileout$=""
next%=0
name%=block%?(44+next%)
" fileout$=fileout$+
(name%)
next%+=1
name%=0
"OS_File",5,fileout$
,,,,length%
ascii%=
(fileout$)
block%!0=uploadhdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
seticontext(0,uploadhdl%,fileout$)
"Wimp_GetCaretPosition",,block%
xoff%=block%!8
yoff%=block%!12
"Wimp_SetCaretPosition",uploadhdl%,0,xoff%,yoff%,-1,
(fileout$)-1
seticontext(1,uploadhdl%,
(length%))
seticontext(2,uploadhdl%,"0")
seticontext(3,uploadhdl%,"0")
checktnc
"OS_Byte",128,253
,space%
space%>128
upload
upload
byte%=0
byte%=
#(ascii%)
byte%=10
byte%=13
"OS_SerialOp",3,byte%
#(ascii%)
byte%=13
byte%=13
block%!0=uploadhdl%
"Wimp_GetWindowState",,block%
seticontext(2,uploadhdl%,
#ascii%))
seticontext(3,uploadhdl%,
#ascii%*100
length%))
#(ascii%)
finishupload
finishupload
#ascii%
upload%=
ctrlz%=
out(fkey$(1,11))
closewindow(uploadhdl%)
checkupload
block%!0=yappuphdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
yappup%=
state$="S"
yappfile$=""
next%=0
name%=block%?(44+next%)
B" yappfile$=yappfile$+
(name%)
next%+=1
name%=0
"OS_File",5,yappfile$
,,,,length%
yappfile$=
yappfile$)
ydata%=
(yappfile$)
yappfile$=
yappfile$,10)
next%=
yappfile$,".")
next%>0
next2%=next%
yappfile2$=""
N
next2%+=1
P$ char$=
yappfile$,next2%,1)
Q% yappfile2$=yappfile2$+char$
R"
next2%=10
next2%=next%
yappfile$=yappfile2$
yappfile$,".")=0
swapicon(yappuphdl%,2,name$)
seticontext(5,yappuphdl%,
(length%))
seticontext(3,yappuphdl%,"0")
seticontext(4,yappuphdl%,"0")
seticontext(0,yappuphdl%,yappfile$)
seticontext(1,yappuphdl%,"Ready to send")
seticontext(6,yappuphdl%,"Send")
abort
#ascii%>0
out("[13]<File upload aborted>[13]")
finishupload
closewindow(uploadhdl%)
#ascii%
checkicon(icon%,hdl%)
block%!0=hdl%
block%!4=icon%
"Wimp_GetIconState",,block%
(block%!24
&200000)=&200000
check%=
check%=
geticontext(icon%,hdl%,
icontxt$)
block%!0=hdl%
block%!4=icon%
&400CE,,block%
icontxt$=$(block%!28)+
out(btext$)
charout%=1
(btext$)
y" byte%=
btext$,charout%,1))
byte%
{*
controlcode(btext$,charout%)
123:
}' endcom%=
btext$,"}",charout%)
endcom%-charout%
(
btext$,charout%+1,4)
"DATE","date":
5
"SET Sys$DateFormat "+dateformat$
%
datetime(command$)
"TIME","time":
5
"SET Sys$DateFormat "+timeformat$
%
datetime(command$)
"CALL","call":
amtor%=
7
geticontext(10,amtorhdl%,command$)
' command$=
command$)
pactor%=
7
geticontext(3,pactorhdl%,command$)
' command$=
command$)
rtty%=
6
geticontext(12,rttyhdl%,command$)
' command$=
command$)
"NAME","name":
amtor%=
7
geticontext(16,amtorhdl%,command$)
' command$=
command$)
chartemp%=endcom%
out(command$)
charout%=chartemp%
(
btext$,charout%+1,5)
"
"BREAK","break":
&57,2,50
charout%=endcom%
(
btext$,charout%+1,6)
$
"UPLOAD","upload":
2 endname%=
btext$," ",charout%+8)
F fileout$="<tnc$DIR>.UploadFile."+
btext$,charout%+8)
1
"OS_File",5,fileout$
type%
type%
( ascii%=
(fileout$)
( byte%=
#(ascii%)
"
byte%
'
10:byte%=13
123:
0
"OS_SerialOp",3,byte%
"
#(ascii%)
#ascii%
-
"PECKON","peckon":packet%=
D
endname%<>0
charout%=endname%
charout%=
(btext$)
(
btext$,charout%+1,7)
/
"PECKOFF","peckoff":packet%=
charout%=endname%
"OS_SerialOp",3,byte%
charout%
host(cbyte%,pbyte%,sbyte%,btext$)
"OS_SerialOp",3,&C0
"OS_SerialOp",3,cbyte%
"OS_SerialOp",3,pbyte%
"OS_SerialOp",3,sbyte%
out(btext$)
"OS_SerialOp",3,&C0
kamrx
(-2)=0
&57,4
,kamci%
kamci%
10,13:
)
scrollkamrx($(host%+partpac%))
partpac%=kamcc%
&C0:
host%?kamcc%=13
kamcc%>1
+
scrollkamrx($(host%+partpac%))
kamcc%=0
partpac%=kamcc%
block%!0=kammonhdl%
,
"Wimp_GetWindowState",,block%
(
"Wimp_OpenWindow",,block%
:
FOR clear%=0 TO kamcc%+1:host%?clear%=0:NEXT
$
kamci%>31
kamci%<127
host%?kamcc%=kamci%
kamcc%+=1
kamcc%=&C0
(-2)<1
scrollkamrx(kampac$)
block%!0=kammonhdl%
"Wimp_GetWindowState",,block%
r1%=block%!20+4
&r2%=block%!24-(block%!16-block%!8)
&r3%=block%!20+(block%!12-block%!4)
r4%=block%!24
&400EB,kammonhdl%,r1%,-32000,r3%,r4%,r1%,-31968
block%!0=kammonhdl%
block%!4=r1%
block%!8=-31996
block%!12=r3%
block%!16=block%!8+32
"Wimp_UpdateWindow",,block%
more%
more%
block%!4-block%!20+4,block%!8-r2%-31968
kampac$
"Wimp_GetRectangle",,block%
more%
controlcode(text$,counter%)
btext$,counter%+3,1)="]"
"OS_SerialOp",3,
btext$,counter%+1,2))
btext$,counter%+1,2))=13
+
"OS_ReadMonotonicTime"
sentcr%
testctext%=sentcr%
"OS_SerialOp",3,byte%
counter%+=3
charout%=counter%
debugvv(line%,mess$,var)
mess$=
mess$,14)
var$=
(var)
debug(line%,mess$+
(mess$)-
(var$)," ")+var$)
debug(line%,mess$)
"OS_SetVarVal","db$mess","XX"
"OS_SetVarVal","db$mess"+
(line%),mess$
tncslow
mouse_click(block%)
mousex%=block%!0
mousey%=block%!4
buttonstate%=block%!8
hdl%=block%!12
iconclick%=block%!16
buttonstate%
iconclick%=iconbar%
wkeys
hdl%
whdl%:
amtor%=
getcall
-0
seticontext(16,amtorhdl%,callsign$)
/#
wkeyshdl%:
wkeychange(-1)
savehdl%:
iconclick%
savefile
5!
create4menu("tnc")
6?
"Wimp_CreateMenu",,mb6%,mousex%-100,mousey%+32
8
streamhdl%:
swapstream
iconclick%=iconbar%
hdl%=-2
menu_setup(mb1%,7)
menu_setup(mb2%,7)
menu_setup(mb3%,7)
menu_setup(mb6%,7)
menu_setup(mb7%,7)
create_menu("tnc")
menu%=1
C2
"Wimp_CreateMenu",,mb1%,mousex%-100,416
hdl%
F6
fkeyshdl%,sfkeyshdl%,cfkeyshdl%,scfkeyshdl%:
menu_setup(mb4%,7)
create2menu("Fkeys")
menu%=2
J;
"Wimp_CreateMenu",,mb4%,mousex%-100,mousey%+32
ctextshdl%:
menu_setup(mb4%,7)
M
create2menu("Ctexts")
menu%=4
O;
"Wimp_CreateMenu",,mb4%,mousex%-100,mousey%+32
wkeyshdl%:
menu_setup(mb5%,7)
create3menu("Wkeys")
menu%=3
T;
"Wimp_CreateMenu",,mb5%,mousex%-100,mousey%+32
whdl%:
menu_setup(mb6%,7)
create4menu("tnc")
menu%=5
Y;
"Wimp_CreateMenu",,mb6%,mousex%-100,mousey%+32
hdl%
]+
infohdl%:
"Wimp_CreateMenu",,-1
whdl%:
amtor%=
getcall
getselcall
b0
seticontext(10,amtorhdl%,callsign$)
rtty%=
getcall
f/
seticontext(19,rttyhdl%,callsign$)
pactor%=
getcall
j0
seticontext(3,pactorhdl%,callsign$)
l,
amtor%=
rtty%=
pactor%=
m0
"OS_Byte",129,&FF,&FF
,pressed%
n'
pressed%=&FF
pac$<>""
getcall
p6
seticontext(line%,whdl%,"r "+callsign$)
q)
out("r "+callsign$+"[13]")
scrolltx
setuphdl%
iconclick%
baudchange(1)
baudchange(-1)
wordchange(-1)
wordchange(1)
protoabort
|*
closewindow(setuphdl%)
savesetup
~*
closewindow(setuphdl%)
usenewdefaults
+
closewindow(setuphdl%)
clockhdl%:
$
iconclick%=3
setclock
2
iconclick%=4
closewindow(clockhdl%)
uploadhdl%:
iconclick%
upload%=
'
checkicon(11,uploadhdl%)
.
check%=
ctrlz%=
ctrlz%=
upload
abort
ramhdl%:
iconclick%
memack%=
#
checkicon(7,ramhdl%)
.
check%=
ctrlz%=
ctrlz%=
memsend
5:memack%=
(
closewindow(ramhdl%)
savehdl%:
iconclick%
savefile
&
"Wimp_CreateMenu",,-1
!
3:append%=
append%
spool%=
! filter%=
filter%
swapsaveicon
0
sayerror("Not whilst SPOOLing")
swapitback
(
"Wimp_CreateMenu",,-1
(
"Wimp_CreateMenu",,-1
-
grabhdl%:
iconclick%=1
grabtext
"
wkeyshdl%:
wkeychange(1)
yapphdl%:
state$
0
"R":yapp%=
closewindow(yapphdl%)
3
iconclick%=6
yappabort("Abort sent")
yappuphdl%:
state$
0
"S":
iconclick%=6
yappupsendab
"ST","Abort":
&
closewindow(yappuphdl%)
state$="S"
3
iconclick%=6
yappabort("Abort sent")
pactorhdl%:
iconclick%
out("[03]x[13]")
out("pactor[13]")
/
seticontext(8,pactorhdl%,"Link")
out("[03]x[13]")
out("ptl[13]")
/
seticontext(8,pactorhdl%,"Link")
%
2:longpath%=
longpath%
/
geticontext(4,pactorhdl%,chirp$)
chirp$)
G
"Auto":
out("[03]1"):
seticontext(4,pactorhdl%,"100")
F
"100":
out("[03]2"):
seticontext(4,pactorhdl%,"200")
G
"200":
out("[03]0"):
seticontext(4,pactorhdl%,"Auto")
out("[03]T")
out("[03]E")
/
geticontext(8,pactorhdl%,state$)
state$)
"Link":
#
out("[03]x[13]")
2
geticontext(3,pactorhdl%,call$)
!
out("pactor ")
+
longpath%=
out("!")
$
out(call$+"[13]")
*
clearicon(pactorhdl%,1)
(
seticon(pactorhdl%,0)
5
seticontext(8,pactorhdl%,"Unlink")
"Unlink":
out("[03]d")
3
seticontext(8,pactorhdl%,"Link")
amtorhdl%:
iconclick%
amtorshift
amtormark
amtorspace
out("[03]R")
out("[03]I")
out("[03]T")
"
out("[03]x[13]")
#
out("fec[13]")
"
out("[03]X[13]")
"
out("am[13]")
"
out("[03]X[13]")
!
out("l[13]")
arqcall
rttyhdl%:
iconclick%
speedchange(1)
!
speedchange(-1)
rttyshift
rttymark
out("[03]I")
"
out("[03]R[13]")
command
amtor
out("[03]T")
rttyspace
cwhdl%:
iconclick%
cwspeed(1)
cwspeed(-1)
out("[03]u")
lock%=
2
seticontext(5,cwhdl%,"LockTX")
out("[03]r")
out("[03]t")
streamhdl%:
swapstream
yapphdl%:
iconclick%
9
seticontext(5,hdl%,"RECEIVE READY sent")
#
out("[06][01]")
out("[24][00]")
%
closewindow(hdl%)
yapp%=
iconclick%=iconbar%
hdl%=-2
block%!0=whdl%
(
"Wimp_GetWindowState",,block%
block%!28=-1
$
"Wimp_OpenWindow",,block%
B
"Wimp_SetCaretPosition",whdl%,line%,xsave%,ysave%,-1,-1
16,64:
hdl%
0
savehdl%,grabhdl%,yapphdl%:
drag(hdl%)
getcall
block%!0=whdl%
"Wimp_GetWindowState",,block%
"#x%=mousex%-(block%!4-block%!20)
#$y%=mousey%-(block%!16-block%!24)
charx%=
((x%-4)/16)+1
liney%=
((31996+y%)/32)+1
check%=0
(5 space$=
line$(sline%+1-liney%),charx%-check%,1)
check%+=1
charx%-check%=-1
space$=" "
+8callsign$=
line$(sline%+1-liney%),charx%-check%+2,6)
space%=
callsign$," ",2)
space%<>0
callsign$=
callsign$,space%-1)
getselcall
sel1$=
callsign$,1)
(callsign$)
4, selcall$=sel1$+sel1$+
callsign$,3,2)
6!
callsign$,2,1))<58
7( selcall$=sel1$+
callsign$,3,3)
8
92 selcall$=
callsign$,1,2)+
callsign$,4,5)
:
sel1$="G"
=2 selcall$=
callsign$,1,1)+
callsign$,4,6)
>
?2 selcall$=
callsign$,1,2)+
callsign$,5,6)
@
selcall$=""
seticontext(25,amtorhdl%,selcall$)
savefile
spool%=
geticontext(0,savehdl%,spoolfile$)
spoolok(spoolfile$)
endspool
swapsaveicon
spool%
filter%=
T+
swapicon(savehdl%,2,"sfile_56c")
U
V+
swapicon(savehdl%,2,"sfile_56d")
W
filter%=
Z+
swapicon(savehdl%,2,"sfile_fff")
[
\+
swapicon(savehdl%,2,"sfile_ffd")
]
swapitback
filter%=
clearicon(savehdl%,4)
seticon(savehdl%,4)
swapstream
icon%= 0
clearicon(hdl%,icon%)
icon%
seticon(hdl%,iconclick%)
iconclick%
out("|a"):
streamadjust("A")
out("|b"):
streamadjust("B")
out("|c"):
streamadjust("C")
out("~a"):
streamadjust("A")
out("~b"):
streamadjust("B")
out("~c"):
streamadjust("C")
streamadjust(stream$)
out("[03]c[13]")
tncslow
getstream$=""
&57,4
,getstream%
~) getstream$=getstream$+
(getstream%)
getstream%=13
call$=
getstream$,12)
space%=
call$,"to ")
call$=
call$,space%+3)
getstream$,"INVALID")>0
seticontext(iconclick%,streamhdl%,"Unused"):
getstream$,"DISC")>0
call$=stream$
out("k[13]")
seticontext(iconclick%,streamhdl%,call$)
seticontext(icon%,hdl%,icontxt$)
block%!0=hdl%
block%!4=icon%
&400CE,,block%
textpointer%=block%!28
$(textpointer%)=icontxt$
block%!8=0
block%!12=0
*FX19
&400CD,,block%
setupclock
yapp%=
yappup%=
block%!0=clockhdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
clock%=
/*SET Sys$DateFormat %dy-%mn-%yr %24:%mi:%se
"OS_ReadMonotonicTime"
delay%
duration%=delay%
checkclock
checkclock
?workarea%=3
"OS_Word",14,workarea%
"OS_ConvertStandardDateAndTime",workarea%,workarea%,256
arctime$
seticontext(2,clockhdl%,arctime$)
delay%+=100
delay%=duration%+2000
closewindow(clockhdl%)
setclock
**SET Sys$DateFormat %yr%mn%dy%24%mi%se
datetime(settime$)
"OS_SerialOp",3,3
tncslow
"tnctime$="day "+settime$+
out(tnctime$)
closewindow(clockhdl%)
datetime(
arctime$)
?workarea%=3
"OS_Word",14,workarea%
"OS_ConvertStandardDateAndTime",workarea%,workarea%,256
arctime$
keypress
6,129,143,255
,key%
key%=255
kam%=
&57,2,50
out("d[13]")
out("[03]")
out("d[13]")
6,129,211,255
,key%
key%=255
&57,2,50:
hdl%=block%!0
key%=block%!24
hdl%
whdl%:
line%=block%!4
key%
out("[07]"):
<
0,1,2,3,4,5,6,8,9,10,11,12:
"OS_SerialOp",3,key%
B
14,15,16,17,18,19,20,21,23,24,25:
"OS_SerialOp",3,key%
hdl%
whdl%:
-
geticontext(line%,whdl%,text$)
scrolltx
caretpos%=0
6
packet%=
out(text$)
out("[13]")
1
"OS_ReadMonotonicTime"
sentcr%
testctext%=sentcr%
savehdl%:
savecr
grabhdl%:
grabcr
breakline
out("[26][13]")
4
cw%=
rtty%=
amtor%=
pactor%=
command
packet%=
0
384:
"Wimp_GetCaretPosition",,block%
xsave%=block%!8
ysave%=block%!12
block%!0=grabhdl%
)
"Wimp_GetWindowInfo",,block%
&
"Wimp_OpenWindow",,block%
+
geticontext(0,grabhdl%,icontxt$)
,
"Wimp_GetCaretPosition",,block%
S
"Wimp_SetCaretPosition",grabhdl%,0,block%!8,block%!12,-1,
(icontxt$)-1
6
385,386,387,388,389,390,391,392,393,458,459:
key%
458,459:key%-=64
fkeycode(key%,1)
6
401,402,403,404,405,406,407,408,409,474,475:
key%
:
401,402,403,404,405,406,407,408,409:key%-=16
474,475:key%-=80
fkeycode(key%,2)
6
417,418,419,420,421,422,423,424,425,490,491:
key%
:
417,418,419,420,421,422,423,424,425:key%-=32
490,491:key%-=96
fkeycode(key%,3)
6
433,434,435,436,437,438,439,440,441,442,443:
key%
:
433,434,435,436,437,438,439,440,441:key%-=48
P
442:
6,129,159,255
,tab%:
tab%=255
"Wimp_ProcessKey",key%:
506,507:key%-=112
fkeycode(key%,4)
pagehome
398:
cursor(1)
399:
cursor(-1)
414:
page(-1)
415:
page(1)
430,431:
pagehome
461:
Insert
!
"Wimp_ProcessKey",key%
ctextshdl%:
icon%=block%!4
icon%
l
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24:icontxt$=ctexts$(icon%):icon%+=25
p
26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48:icon%-=24:icontxt$=call$(icon%)
,
49:icon%=1:icontxt$=call$(icon%)
F
"Wimp_SetCaretPosition",ctextshdl%,icon%,,,-1,
(icontxt$)-1
savehdl%:
savecr
grabhdl%:
grabcr
"Wimp_ProcessKey",key%
savecr
geticontext(0,savehdl%,spoolfile$)
spoolok(spoolfile$)
closewindow(savehdl%)
grabcr
geticontext(0,grabhdl%,grabfile$)
grabtext
fkeycode(keycode%,set%)
(!key$=fkey$(set%,keycode%-384)
(key$),"[13]")>0
key$=
key$,
(key$)-5)
out(key$+"[13]")
seticontext(line%,whdl%,key$)
scrolltx
out(key$)
seticontext(line%,whdl%,key$)
longfkey
cursor(move%)
"Wimp_GetCaretPosition",,block%
line%=block%!4+move%
line%=4
line%=0
line%=-1
line%=3
"Wimp_SetCaretPosition",whdl%,line%,block%!8,block%!12,-1,-1
scrollreq
block%!36
-2,+2:
page(block%!36/2)
-1,1:
page(block%!36*.05)
page(updown%)
block%!0=whdl%
"Wimp_GetWindowState",,block%
I%block%!24=block%!24+(updown%*640)
"Wimp_OpenWindow",,block%
pagehome
block%!0=whdl%
"Wimp_GetWindowState",,block%
P"flip%=block%!16-block%!8-32000
block%!24<flip%
block%!24=flip%
block%!24=flip%-160
"Wimp_OpenWindow",,block%
breakline
geticontext(line%,whdl%,text$)
text$))
(22)+
(13))
scrolltx
"Wimp_GetCaretPosition",,block%
block%!0=whdl%
line%=block%!4
block%!20>maxpac%
line%>-1
packet%=
b,
geticontext(line%,whdl%,partpac$)
endchar%=maxpac%+2
endchar%-=1
f* endchar$=
partpac$,endchar%,1)
g%
endchar$=" "
endchar%=1
h+
endchar%=1
endchar%=maxpac%+2
i$ pac$=
partpac$,endchar%-1)
out(pac$+"[13]")
scrolltx
line%=4
line%-=1
n,
seticontext(line%-1,whdl%,pac$)
o0 pac$=
partpac$,(maxpac%+2-endchar%))
p*
seticontext(line%,whdl%,pac$)
qJ
"Wimp_SetCaretPosition",whdl%,line%,,,-1,maxpac%+1-endchar%
s
t(
amtor%=
rtty%=
cw%=
u/
geticontext(line%,whdl%,lastchar$)
lastchar$,2))
scrolltx
y
diddle
"Wimp_GetCaretPosition",,block2%
block2%!0=whdl%
block2%!4>-1
line%=block2%!4
newcaretpos%=block2%!20
newcaretpos%>caretpos%
1
geticontext(block2%!4,whdl%,diddlechar$)
0
diddlechar%=caretpos%+1
newcaretpos%
3 diddleout%=
diddlechar$,diddlechar%,1))
"
newcaretpos%>maxpac%
diddleout%=32
diddleout%=13
scrolltx
newcaretpos%>71
+
"OS_SerialOp",3,diddleout%
#
"OS_SerialOp",3,13
scrolltx
)
"OS_SerialOp",3,diddleout%
diddlechar%
newcaretpos%<caretpos%
' deletes%=caretpos%-newcaretpos%
erase%=1
deletes%
out("[08]")
erase%
caretpos%=newcaretpos%
updatecaret
&400D3,,block%:
block%!0=whdl%
"FX19":
&400D2,whdl%,block%!4,block%!8,block%!12,block%!16
flagtweak%,block%!20
againsave
spool%=
sayerror("Already spooling")
geticontext(0,savehdl%,icontxt$)
spoolok(icontxt$)
closewindow(savehdl%)
drag(hdl%)
hdl%=grabhdl%
grab%=
!block%=hdl%
"Wimp_GetWindowState",,block%
ox%=block%!4-block%!20
oy%=block%!16-block%!24
block%!4=2
"Wimp_GetIconState",,block%
!block%=hdl%
block%!4=5
block%!8=ox%+block%!8
block%!12=oy%+block%!12
block%!16=ox%+block%!16
block%!20=oy%+block%!20
block%!24=0:block%!28=0
block%!32=&7FFFFFFF
block%!36=&7FFFFFFF
"Wimp_DragBox",,block%
dragsave
grab%=
hdl%=grabhdl%
spool%=
hdl%=savehdl%
yapp%=
hdl%=yapphdl%
geticontext(0,hdl%,icontxt$)
icontxt$,".")<>0
getfile$=icontxt$
chars%=1
" getfile$=
icontxt$,chars%)
chars%+=1
getfile$,".")<>0
chars%=11
file$=
getfile$,chars%-2)
file$=icontxt$
"Wimp_GetPointerInfo",,block%
block%!20=block%!12
block%!24=block%!16
block%!28=block%!0
block%!32=block%!4
block%!36=64
block%!0=64
block%!12=0
block%!16=1
block%!40=&FFF
$(block%+44)=file$
"Wimp_SendMessage",17,block%,block%!20,block%!24
grab%=
grabfile$=file$
spool%=
spoolfile$=file$
yapp%=
yappfile$=file$
quickspool
spool%
:spoolfile$=deffile$
%
spoolok(spoolfile$)
4
seticontext(0,savehdl%,spoolfile$)
endspool
endspool
seticontext(5,savehdl%,
#spy%))
#spy%
filter%=
filetype%=&fff
filetype%=&ffd
"OS_File",18,spoolfile$,filetype%
twiddletick
spoolok(spoolfile$)
spoolfile$=""
spoolfile$=deffile$
filter%=
filetype%=&56c
filetype%=&56d
append%=
"OS_File",6,(spoolfile$)
spy%=
(spoolfile$)
"OS_File",18,spoolfile$,filetype%
seticontext(5,savehdl%,"0")
"XOS_File",13,spoolfile$,0
exists%
exists%=1
spy%=
(spoolfile$)
#spy%=
#spy%
spy%=
(spoolfile$)
"OS_File",18,spoolfile$,filetype%
twiddletick
twiddletick
spool%=
spool%
spool%
:spooltick%=1
/
seticontext(1,savehdl%,"Stop")
:spooltick%=0
-
seticontext(1,savehdl%,"OK")
swapsaveicon
scrolltx
line%<botline%
"Wimp_GetCaretPosition",,block%
line%+=1
"Wimp_SetCaretPosition",whdl%,line%,block%!8,block%!12,-1,0
line%=1
botline%
'
geticontext(line%,whdl%,text$)
)
seticontext(line%-1,whdl%,text$)
line%
seticontext(botline%,whdl%,
(13))
"Wimp_GetCaretPosition",,block%
"Wimp_SetCaretPosition",whdl%,botline%,block%!8,block%!12,-1,0
caret%=
updatecaret
fkeys(fkeyset%)
fkeyset%
0:hdl%=fkeyshdl%:title$="Fkeys"
1:hdl%=sfkeyshdl%:title$="Shift/fkeys"
2:hdl%=cfkeyshdl%:title$="Ctrl/fkeys"
3:hdl%=scfkeyshdl%:title$="C/Sh/fkeys"
block%!0=hdl%
"Wimp_GetWindowInfo",,block%
block%!28=-1
$(block%!76)=title$
"Wimp_OpenWindow",,block%
loadkeyfile(file$)
file$
"fkeys":hdl%=fkeyshdl%
"sfkeys":hdl%=sfkeyshdl%
"cfkeys":hdl%=cfkeyshdl%
"scfkeys":hdl%=scfkeyshdl%
<"file$="<tnc$DIR>.FKeys."+file$
"OS_File",5,file$
type%
type%
icon%=1
channel%=
(file$)
nokey%=
D
key$=
#(channel%)
G'
seticontext(icon%,hdl%,key$)
icon%+=1
I#
#(channel%)
nokey%=
nokey%=
icon%=12
#(channel%)
updatekeys
updatekeys
updatekeys2(fkeyshdl%,1)
updatekeys2(sfkeyshdl%,2)
updatekeys2(cfkeyshdl%,3)
updatekeys2(scfkeyshdl%,4)
updatekeys2(hdl%,set%)
icon% = 1
geticontext(icon%,hdl%,fkey$(set%,icon%))
icon%
seticontext(icon%,hdl%,"Not programmable")
savefkeys
savefkeys2("fkeys",fkeyshdl%,1)
savefkeys2("sfkeys",sfkeyshdl%,2)
savefkeys2("cfkeys",cfkeyshdl%,3)
savefkeys2("scfkeys",scfkeyshdl%,4)
savefkeys2(file$,hdl%,set%)
g"file$="<tnc$DIR>.Fkeys."+file$
"OS_File",6,(file$)
channel%=
(file$)
icon%=1
nextbyte%=1
geticontext(icon%,hdl%,fkey$(set%,icon%))
n1 keystore$=
fkey$(set%,icon%),nextbyte%,1)
o+
keystore$=
(13)
keystore$=
#channel%,keystore$;
nextbyte%+=1
nextbyte%>
(fkey$(set%,icon%))
icon%
#channel%
"OS_File",18,file$,&FFF
updatekeys
getwkeys
wkeys%=0
wkeys%+=1
}Dloadwkeys%=
loadwkeyfile("<tnc$DIR>.WimpKeys."+
(wkeys%),wkeys%)
loadwkeys%=
loadwkeyfile(file$,wkeyset%)
"OS_File",5,file$
type%
type%
icon%=1
channel%=
(file$)
nokey%=
byte1%=
#(channel%)
byte1%=124
byte%=
#(channel%)
0
#(channel%)
byte%=10
byte%=13
byte1%<>124
#channel%=
#channel%-1
wkey%=1
/
settext(wimpkeydef$(wkeyset%,wkey%))
0
settext(wimpkeyicon$(wkeyset%,wkey%))
wkey%+=1
nokey%=
wkey%>9
#(channel%)
=
settext(
tkey$)
tkey$=""
byte%=
#(channel%)
tkey$=tkey$+
(byte%)
#(channel%)
byte%=10
byte%=13
#(channel%)
nokey%=
tkey$=
tkey$)+
wkeys
block%!0=wkeyshdl%
"Wimp_GetWindowState",,block%
block%!28=-1
"Wimp_OpenWindow",,block%
icon%=1
seticontext(0,wkeyshdl%,
(wkeyset%))
seticontext(icon%,wkeyshdl%,
wimpkeyicon$(wkeyset%,icon%)))
icon%
wkeychange(step%)
geticontext(0,wkeyshdl%,wkeyset$)
wkeyset%=
(wkeyset$)
iconclick%
wkeyset%+=step%
wkeyset%>numwkeys%
wkeyset%=1
wkeyset%<1
wkeyset%=numwkeys%
icon%=1
-
seticontext(0,wkeyshdl%,
(wkeyset%))
D
seticontext(icon%,wkeyshdl%,
wimpkeyicon$(wkeyset%,icon%)))
icon%
wimpkeydef$(wkeyset%,iconclick%)))
step%=-1
closewindow(hdl%)
ctexts
"OS_File",5,"<tnc$DIR>.ctexts"
type%
type%
0,2:
icon%=1
& channel%=
("<tnc$DIR>.ctexts")
call%=1
# call$(call%)=
#(channel%)
5
seticontext(call%,ctextshdl%,call$(call%))
call%+=1
call%>24
ctext%=1
& ctexts$(ctext%)=
#(channel%)
<
seticontext(ctext%+25,ctextshdl%,ctexts$(ctext%))
ctext%+=1
ctext%>24
#(channel%)
connected
upload%=
yapp%=
yappup%=
*callpos%=
pac$,"*** CONNECTED to ")+17
callpos%=17
"OS_ReadMonotonicTime"
sentcr%
sentcr%<testctext%+3000
streampos%=
pac$,"|")
streampos%>0
ctexttwo(streampos%,124)
streampos%=
pac$,"~")
streampos%>0
ctexttwo(streampos%,126)
callin$=
pac$,callpos%,6)
callin$)="-"
callin$)=" "
callin$=
callin$,5)
callin$=
callin$,6)
call%=0
call$=""
call%+=1
call$=call$(call%)
call%=24
call$=callin$
call%<25
ctextstick%=1
out(ctexts$(call%)+
(13))
call%=25
call$(24)="OTHER"
out(ctexts$(24)+
(13))
ctexttwo(streampos%,port%)
$stream%=
pac$,streampos%+1,1))
stream%>64
stream%<91
(port%)+
(stream%))
savectexts
file$="<tnc$DIR>.ctexts"
"OS_File",6,(file$)
channel%=
(file$)
icon%=1
icon%<25
-
geticontext(icon%,hdl%,call$(icon%))
& keystore$=
call$(icon%))+
4
geticontext(icon%+1,hdl%,ctexts$(icon%-25))
+ keystore$=
ctexts$(icon%-25))+
keystore$=
(13)
keystore$=
#channel%,keystore$;
icon%
#channel%
updatectexts
updatectexts
icon%=1
icon%<25
-
geticontext(icon%,hdl%,call$(icon%))
capchar$=""
caps$=""
caps%=1
) capchar$=
call$(icon%),caps%,1)
7
(capchar$)>96
capchar$=
(capchar$)-32)
caps$+=capchar$
caps%+=1
(capchar$)<32
call$(icon%)=
caps$)
3
seticontext(icon%,ctextshdl%,call$(icon%))
4
geticontext(icon%+1,hdl%,ctexts$(icon%-24))
- ctexts$(icon%-24)=
ctexts$(icon%-24))
icon%
pactor
packet%=
amtor%=
rtty%=
cw%=
(3)+"X[13]")
pactor%=
out("ptl[13]")
pactor%=
block%!0=pactorhdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
seticon(pactorhdl%,1)
seticontext(8,pactorhdl%,"Link")
amtor
packet%=
maxpac%=62
pactor%=
rtty%=
cw%=
(3)+"X[13]")
amtor%=
6)
geticontext(2,amtorhdl%,getshift$)
getshift$
"170":shift%=1
"425":shift%=2
"850":shift%=3
"M":shift%=4
=*
out("SHIFT "+shift$(shift%)+"[13]")
out("l[13]")
amtor%=
block%!0=amtorhdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
seticon(amtorhdl%,21)
arqcall
geticontext(25,amtorhdl%,arqcall$)
(arqcall$)<5
out("[03]X[13]")
out("am "+arqcall$+"[13]")
clearicon(amtorhdl%,17)
clearicon(amtorhdl%,21)
seticon(amtorhdl%,19)
packet%=
maxpac%=62
pactor%=
amtor%=
cw%=
(3)+"X[13]")
rtty%=
V(
geticontext(6,rttyhdl%,getshift$)
getshift$
"170":shift%=1
"425":shift%=2
"850":shift%=3
"M":shift%=4
]*
out("SHIFT "+shift$(shift%)+"[13]")
^-
geticontext(5,rttyhdl%,speed$(speed%))
_&
out("r "+speed$(speed%)+"[13]")
rtty%=
block%!0=rttyhdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
speedchange(rttystep%)
speed%=speed%+rttystep%
speed%=0
speed%=9
speed%=10
speed%=1
seticontext(5,rttyhdl%,speed$(speed%))
(48+speed%))
rttyshift
shift%+=1
shift%
r*
updateicon(rttyhdl%,7,&702F13D)
s-
updateicon(rttyhdl%,8,&702F13D)
t/
updateicon(rttyhdl%,12,&C701903D)
u/
updateicon(rttyhdl%,18,&C701903D)
v*
updateicon(rttyhdl%,7,&301013D)
w-
updateicon(rttyhdl%,8,&301013D)
x/
updateicon(rttyhdl%,12,&C701003D)
y/
updateicon(rttyhdl%,18,&C701003D)
z/
"Wimp_GetCaretPosition",,block%
{C
block%!0=rttyhdl%
"Wimp_SetCaretPosition",-1,-1
shift%=1
out("[03]S")
seticontext(6,rttyhdl%,shift$(shift%))
updateicon(hdl%,icon%,flag%)
block%!0=hdl%
block%!4=icon%
block%!8=flag%
block%!12=&FFFFFFFF
"Wimp_SetIconState",,block%
seticon(hdl%,icon%)
block%!0=hdl%
block%!4=icon%
"Wimp_GetIconState",,block%
block%!8= 0+1<<21
block%!12=0+1<<21
"Wimp_SetIconState",,block%
clearicon(hdl%,icon%)
block%!0=hdl%
block%!4=icon%
"Wimp_GetIconState",,block%
block%!8= 0+0<<21
block%!12=0+1<<21
"Wimp_SetIconState",,block%
swapicon(hdl%,icon%,name$)
block%!0=hdl%
block%!4=icon%
"Wimp_GetIconState",,block%
$block%!32=name$
block%!8=0
block%!12=0
"Wimp_SetIconState",,block%
rttymark
geticontext(7,rttyhdl%,mark$)
(3)+"X[13]")
out("mark "+mark$+"[13]")
out("r "+speed$(speed%)+"[13]")
rttyspace
geticontext(8,rttyhdl%,space$)
out("[03]x[13]")
out("space "+space$+"[13]")
out("r "+speed$(speed%)+"[13]")
amtorshift
amtorshift%+=1
amtorshift%
updateicon(amtorhdl%,6,&702F13D)
.
updateicon(amtorhdl%,8,&702F13D)
/
updateicon(amtorhdl%,7,&C701903D)
/
updateicon(amtorhdl%,9,&C701903D)
updateicon(amtorhdl%,6,&301013D)
.
updateicon(amtorhdl%,8,&301013D)
/
updateicon(amtorhdl%,7,&C701003D)
/
updateicon(amtorhdl%,9,&C701003D)
/
"Wimp_GetCaretPosition",,block%
D
block%!0=amtorhdl%
"Wimp_SetCaretPosition",-1,-1
amtorshift%=1
out("[03]S")
seticontext(2,amtorhdl%,shift$(amtorshift%))
amtormark
geticontext(6,amtorhdl%,mark$)
out("[03]X[13]")
out("mark "+mark$+"[13]")
out("l [13]")
lamtor
amtorspace
geticontext(8,amtorhdl%,space$)
out("[03]X[13]")
out("space "+space$+"[13]")
out("l [13]")
lamtor
lamtor
clearicon(amtorhdl%,17)
clearicon(amtorhdl%,21)
seticon(amtorhdl%,19)
packet%=
maxpac%=72
pactor%=
rtty%=
amtor%=
(3)+"X[13]")
cw%=
geticontext(2,cwhdl%,getspeed$)
getspeed$<>"*"
out("cw 25[13]")
$
seticontext(2,cwhdl%,
(25))
<
out("cw "+getspeed$[13]"):REM check quotes/brackets
(
seticontext(2,cwhdl%,getspeed$)
cw%=
block%!0=cwhdl%
"Wimp_GetWindowState",,block%
"Wimp_OpenWindow",,block%
cwspeed(cwstep%)
cwspeed%=cwspeed%+cwstep%
cwspeed%=10
cwspeed%=0
cwspeed%=-1
cwspeed%=9
seticontext(2,cwhdl%,cwspeed$(cwspeed%))
out("[03]"+
(cwspeed%))
lock%=
lock%
lock%
'
seticontext(5,cwhdl%,"Unlock")
out("[03]l")
'
seticontext(5,cwhdl%,"LockTX")
out("[03]u")
command
maxpac%=72
out("[03]x[13]")
cw%=
closewindow(cwhdl%)
cw%=
rtty%=
closewindow(rttyhdl%)
rtty%=
pactor%=
closewindow(pactorhdl%)
clearicon(pactorhdl%,0)
seticontext(8,pactorhdl%,"Link")
pactor%=
amtor%=
closewindow(amtorhdl%)
clearicon(amtorhdl%,17)
clearicon(amtorhdl%,19)
amtor%=
menu_setup(mb%,itemwidth%)
mb%?12=7
mb%?13=2
mb%?14=7
mb%?15=0
mb%!16=itemwidth%*16
mb%!20=40
mb%!24=0
create_menu(title$)
$mb1%=title$
flags%=mb1%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=infohdl%
menuicon%!0=%110001+(7<<24)
$(menutext%)="Info"
flags%=mb1%+52
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=setuphdl%
menuicon%!0=%110001+(7<<24)
$(menutext%)="Setup"
flags%=mb1%+76
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00+ctextstick%
submenu%!0=mb6%
menuicon%!0=%110001+(7<<24)
$(menutext%)="Ctexts"
flags%=mb1%+100
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=mb7%
menuicon%!0=%110001+(7<<24)
$(menutext%)="Keys"
flags%=mb1%+124
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=mb3%
menuicon%!0=%110001+(7<<24)
kam%=
menuicon%!0+=shaded%
$(menutext%)="KAM"
flags%=mb1%+148
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Clock"
flags%=mb1%+172
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Stream"
flags%=mb1%+196
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Quit"
menu2
$mb2%="Fkeys"
flags%=mb2%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=0
menuicon%!0=%110001+(7<<24)
$(menutext%)="Fkeys"
flags%=mb2%+52
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=0
menuicon%!0=%110001+(7<<24)
$(menutext%)="Shift"
flags%=mb2%+76
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=0
menuicon%!0=%110001+(7<<24)
$(menutext%)="Ctrl"
flags%=mb2%+100
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=0
menuicon%!0=%110001+(7<<24)
$(menutext%)="C/Shft"
menu3
$mb3%="KAM"
flags%=mb3%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Pactor"
flags%=mb3%+52
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Amtor"
flags%=mb3%+76
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Rtty"
flags%=mb3%+100
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="CW"
flags%=mb3%+124
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Packet"
menu6
$mb6%="Ctexts"
flags%=mb6%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Show"
menu7
$mb7%="Keys"
flags%=mb7%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=mb2%
menuicon%!0=%110001+(7<<24)
$(menutext%)="F keys"
flags%=mb7%+52
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="W keys"
create2menu(title$)
submenu1
$mb4%=title$
flags%=mb4%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Update"
flags%=mb4%+52
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Save"
create3menu(title$)
submenu1
$mb5%=title$
flags%=mb5%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Open"
flags%=mb5%+52
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="Update"
create4menu(title$)
submenu1
$mb6%=title$
flags%=mb6%+28
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&00+spooltick%
submenu%!0=savehdl%
menuicon%!0=%110001+(7<<24)
$(menutext%)="Spool"
flags%=mb6%+52
submenu%=flags%+4
menuicon%=flags%+8
menutext%=flags%+12
flags%!0=&80
submenu%!0=-1
menuicon%!0=%110001+(7<<24)
$(menutext%)="YappRx"
menu_action(block%)
level0%=block%!0
level1%=block%!4
level2%=block%!8
"Wimp_GetPointerInfo",,block%
mouse%=block%!8
menu%
level0%
setup
^;
ctextstick%=1
ctextstick%=0
ctextstick%=1
level1%
a# block%!0=ctextshdl%
b0
"Wimp_GetWindowState",,block%
block%!28=-1
d,
"Wimp_OpenWindow",,block%
e?
ctextstick%=1
ctextstick%=0
ctextstick%=1
level1%
i!
fkeys(level2%)
wkeys
level2%
n#
updatewkeys
o!
savewkeys
s"
packet%=
command
level1%
pactor
amtor
4:packet%=
{&
clock%=
setupclock
|!
6:block%!0=streamhdl%
},
"Wimp_GetWindowState",,block%
block%!28=-1
(
"Wimp_OpenWindow",,block%
7:quit%=
mouse%=1
create_menu("tnc")
menu%=1
4
"Wimp_CreateMenu",,mb1%,mousex%-100,372
level0%
updatekeys
savefkeys
mouse%=1
create2menu("Fkeys")
menu%=2
8
"Wimp_CreateMenu",,mb4%,mousex%-100,mousey%
level0%
2
"Filer_OpenDir <tnc$DIR>.WimpKeys"
getwkeys:
wkeys
mouse%=1
create3menu("Wkeys")
menu%=3
4
"Wimp_CreateMenu",,mb5%,mousex%,mousey%
level0%
updatectexts
savectexts
mouse%=1
create2menu("Ctexts")
menu%=4
4
"Wimp_CreateMenu",,mb4%,mousex%,mousey%
level0%
quickspool
block%!0=yapphdl%
,
"Wimp_GetWindowState",,block%
(
"Wimp_OpenWindow",,block%
yapp%=
state$="R"
*
out("[03]trans[13]"):
direct
sayerror(message$)
block%!0=errhdl%
"Wimp_GetWindowState",,block%
block%!28=-1
"Wimp_OpenWindow",,block%
seticontext(0,errhdl%,
seticontext(1,errhdl%,
seticontext(2,errhdl%,message$)
error
"Wimp_CommandWindow",99
$;" at line ";
wimperror
!block%=
=222
=248
>&FFFF
<&20000)
block%!0=filerrhdl%
"Wimp_GetWindowState",,block%
block%!28=-1
"Wimp_OpenWindow",,block%
seticontext(0,filerrhdl%,
=222
twiddletick
closefiles
closewindow(uploadhdl%)
closewindow(savehdl%)
0 mask%=(1<<0)+(1<<4)+(1<<5)+(1<<11)+(1<<12)
errwindow%=
sayerror(
closefiles
spool%=
#spy%:spool%=
upload%=
#ascii%:upload%=
yapp%=
#yapp%:yapp%=
yappup%=
#ydata%:yappup%=
close
pactor%=
rtty%=
amtor%=
cw%=
command
closefiles
$block%="TASK"
"XWimp_CloseTemplate"
"Wimp_CloseDown",task%,!block%